package com.jianbing.util;

/**
 * Created with IntelliJ IDEA. User: LFL Date: 2017/5/5 Time: 17:03 Description:
 */
public class StringFuzzyMatchUtils {

	/**
	 * 完全匹配（除*外）
	 * 
	 * @author cwl
	 * @date 2017年6月12日
	 *
	 * @param inputStr
	 * @param checkStr
	 * @return
	 */
	public static Boolean checkStringMatching1(String inputStr, String checkStr) {

		if (inputStr.length() != checkStr.length()) {
			return false;
		}

		if (!checkStr.contains("*")) {
			return checkStr.equals(inputStr) ? true : false;
		}
		// *在首位的情况
		if (checkStr.indexOf("*") == 0) {
			String str = checkStr.substring(checkStr.lastIndexOf("*") + 1);
			String inputStrExt = inputStr.substring(checkStr.lastIndexOf("*") + 1);
			if (inputStrExt.equals(str))
				return true;
			else
				return false;
		}
		// *在中间的情况
		if (checkStr.indexOf("*") > 0 && checkStr.lastIndexOf("*") < checkStr.length()) {
			String str = checkStr.substring(0, checkStr.indexOf("*"));
			String str2 = checkStr.substring(checkStr.lastIndexOf("*") + 1);
			String inputStrExt1 = inputStr.substring(0, checkStr.indexOf("*"));
			String inputStrExt2 = inputStr.substring(checkStr.lastIndexOf("*") + 1);
			if (inputStrExt1.equals(str) && inputStrExt2.equals(str2))
				return true;
			else
				return false;
		}
		// *在末尾的情况
		if (checkStr.indexOf("*") > 0) {
			String str = checkStr.substring(0, checkStr.indexOf("*"));
			String inputStrExt = inputStr.substring(0, checkStr.indexOf("*"));
			if (inputStrExt.equals(str))
				return true;
			else
				return false;
		}
		return false;
	}

	/**
	 * 在不知长度的情况下，部分匹配
	 * 
	 * @author cwl
	 * @date 2017年6月12日
	 *
	 * @param inputStr
	 * @param checkStr
	 * @return
	 */
	public static Boolean checkStringMatching2(String inputStr, String checkStr) {

		if (!checkStr.contains("*")) {
			return checkStr.equals(inputStr) ? true : false;
		}
		if (checkStr.indexOf("*") == 0 && checkStr.lastIndexOf("*") == checkStr.length()) {
			return true;
		}
		// *在首位的情况
		if (checkStr.indexOf("*") == 0) {
			String str = checkStr.substring(checkStr.lastIndexOf("*") + 1);
			if (inputStr.contains(str))
				return true;
			else
				return false;
		}
		// *在中间的情况
		if (checkStr.indexOf("*") > 0 && checkStr.lastIndexOf("*") < checkStr.length()) {
			String str = checkStr.substring(0, checkStr.indexOf("*"));
			String str2 = checkStr.substring(checkStr.lastIndexOf("*") + 1);
			if (inputStr.contains(str) && inputStr.contains(str2))
				return true;
			else
				return false;
		}
		// *在末尾的情况
		if (checkStr.indexOf("*") > 0) {
			String str = checkStr.substring(0, checkStr.indexOf("*"));
			if (inputStr.equals(str))
				return true;
			else
				return false;
		}
		return false;
	}

}
